package com.hub.realtime.flinkshims.core.model;

import com.hub.realtime.flinkshims.core.enums.SqlErrorType;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

@Data
public class SqlError {
    private SqlErrorType sqlErrorType;
    private String exception;
    private String sql;
    private final String separator = "\001";
    public SqlError()
    {

    }

    public SqlError(SqlErrorType sqlErrorType, String exception, String sql) {
        this.sqlErrorType = sqlErrorType;
        this.exception = exception;
        this.sql = sql;
    }

    @Override
    public String toString() {
        return "sqlerrorType:"+sqlErrorType.errorType + ", exception:" +   exception +" ,sql:"+   sql;
    }

    public SqlError fromString(String str) {
        if (StringUtils.isEmpty(str)) {
            return null;
        } else {
            String[] split = str.split(separator);
            return new SqlError(SqlErrorType.of(Integer.valueOf(split[0])), split[1], split[2]);
        }
    }
}

